#ifndef _gpio_h_
#define _gpio_h_

/*
    输入io
*/
#define BUTTON_1 21
#define BUTTON_2 19

/*
    输出io
*/
#define LED_2 14
#define LED_3 12
#define CTRL1 18
#define CTRL2 5
#define BUZZER 25

/*
    复位目标
*/
#define RESET_TARGET                      \
    CTRL1_L                               \
    CTRL2_L                               \
    vTaskDelay(200 / portTICK_PERIOD_MS); \
    CTRL1_H                               \
    CTRL2_H                               \
    vTaskDelay(200 / portTICK_PERIOD_MS); \
    CTRL1_L                               \
    CTRL2_L

void gpio_init(void);

/*
    io
*/
#define LED2_ON gpio_set_level(LED_2, 0);
#define LED2_OFF gpio_set_level(LED_2, 1);

#define LED3_ON gpio_set_level(LED_3, 0);
#define LED3_OFF gpio_set_level(LED_3, 1);

#define CTRL1_L gpio_set_level(CTRL1, 0);
#define CTRL1_H gpio_set_level(CTRL1, 1);

#define CTRL2_L gpio_set_level(CTRL2, 0);
#define CTRL2_H gpio_set_level(CTRL2, 1);

#define BUZZER_L gpio_set_level(BUZZER, 0);
#define BUZZER_H gpio_set_level(BUZZER, 1);

/*
    task event

    LED2绿色
    LED3红色

    按下BUTTON_1通电，LED_2闪烁，即为启动蓝牙广播，小程序请求校验片上固件LED_2闪烁即为校验通过
*/
#define LED_EVENT_TWINKLE 1 //闪烁

#endif
